// api/tencentMapApi.js
import httpRequest from '@/utils/request.js';

// 定义 IP 地址和 API Key
const IP = '111.206.145.41';
const API_KEY = '5QZBZ-LYBEQ-IIT5B-4QLFS-VRJS3-B7F2R';

export function getLocationByIP(a) {
	a.$jsonp("https://apis.map.qq.com/ws/geocoder/v1/ip", {
		key: API_KEY,
		output: 'jsonp',
		// ip: IP, //要把这个ip这一行注释掉
		// location: '31.973929,119.756208',//可以通过uni.getLocation获取，谷歌浏览器会对定位请求清除，有时候定位准，有时候定位不准会出现初始地址甘肃省，但项目发布上https就行了，不准的时候用其他浏览器测试
		// location: '33.67,119.28',
		get_poi: '0'
	}).then(resp => {
		let res = resp;
		console.log(JSON.stringify(resp));
		let a = resp.result.ad_info;
		console.log(JSON.stringify(a));
	})
}

// export function reverseGeocoding(that, latitude, longitude) {
// 	that.$jsonp("https://apis.map.qq.com/ws/geocoder/v1", {
// 		key: API_KEY,
// 		output: 'jsonp',
// 		location: latitude + ',' + longitude,
// 		get_poi: '0'
// 	}).then(resp => {
// 		let res = resp;
// 		// console.log("逆向解析：" + JSON.stringify(resp));
// 		let a = resp.result.ad_info;
// 		// console.log("逆向解析：" + JSON.stringify(a));
// 		let recommend = resp.result.formatted_addresses.recommend;
// 		// console.log("推荐地址：" + JSON.stringify(recommend));
// 		// that.recommend = recommend;
// 		return recommend;
// 	}).catch(error => {
// 		console.error('逆向地理编码失败:', error);
// 		throw error;
// 	});
// }

export async function reverseGeocoding(that, latitude, longitude) {
	try {
		const resp = await that.$jsonp("https://apis.map.qq.com/ws/geocoder/v1", {
			key: API_KEY,
			output: 'jsonp',
			location: `${latitude},${longitude}`,
			get_poi: '0'
		});
		return resp.result.formatted_addresses.recommend; // 明确返回 recommend
	} catch (error) {
		console.log("报错啦");
		console.error('根据经纬度逆地址解析失败:', error);
		throw error; // 重新抛出错误
	}
}

// export function reverseGeocoding(latitude, longitude) {
// 	const queryParams = `location=${latitude},${longitude}&key=${API_KEY}&get_poi=0`;
// 	const fullUrl = `https://apis.map.qq.com/ws/geocoder/v1/?${queryParams}`;

// 	console.log('reverseGeocoding 请求 URL:', fullUrl); // 添加日志输出

// 	return httpRequest.request({
// 		url: fullUrl,
// 		method: 'GET',
// 		data: {}
// 	}).then(res => {
// 		console.log('reverseGeocoding 响应结果:', res); // 添加日志输出
// 		if (res.status === 0) {
// 			const {
// 				address_component,
// 				pois
// 			} = res.result;
// 			return {
// 				nation: address_component.nation,
// 				province: address_component.province,
// 				city: address_component.city,
// 				district: address_component.district,
// 				pois: pois
// 			};
// 		} else {
// 			throw new Error(res.message);
// 		}
// 	}).catch(err => {
// 		console.error('逆地理编码失败', err);
// 		return null;
// 	});
// }

//https://apis.map.qq.com/ws/geocoder/v1/?location=39.984154,116.307490&key=[你的key]&get_poi=1
// 逆地址解析函数

// // api/tencentMapApi.js
// import httpRequest from '@/utils/request.js';

// // 定义 IP 地址和 API Key
// const IP = '111.206.145.41';
// const API_KEY = '5QZBZ-LYBEQ-IIT5B-4QLFS-VRJS3-B7F2R';

// // 封装通过 IP 获取位置的函数
// // export function getLocation() {
// // 	// 手动拼接查询参数
// // 	const queryParams = `ip=${IP}&key=${API_KEY}`;
// // 	const fullUrl = `https://apis.map.qq.com/ws/location/v1/ip?${queryParams}`;

// // 	console.log("fullUrl:" + fullUrl);

// // 	return httpRequest.request({
// // 		url: fullUrl,
// // 		method: 'GET'
// // 	}).then(res => {
// // 		if (res.status === 0) res.result.location;
// // 		else {
// // 			throw new Error(res.message);
// // 		}
// // 	}).catch(err => {
// // 		console.error('通过 IP 获取位置失败', err);
// // 		return null;
// // 	});
// // }

// // export function getLocation() {
// // 	// 使用 URLSearchParams 或手动拼接参数（确保正确编码）
// // 	const queryParams = new URLSearchParams();
// // 	queryParams.append('ip', IP);
// // 	queryParams.append('key', API_KEY);

// // 	const fullUrl = `https://apis.map.qq.com/ws/location/v1/ip?${queryParams.toString()}`;
// // 	console.log("fullUrl:", fullUrl);

// // 	return new Promise((resolve, reject) => {
// // 		uni.request({
// // 			url: fullUrl,
// // 			method: 'GET',
// // 			dataType: 'jsonp',
// // 			success: (res) => {
// // 				if (res.data.status === 0) {
// // 					resolve(res.data.result.location); // 返回位置信息
// // 				} else {
// // 					console.error('腾讯地图API返回错误:', res.data.message);
// // 					reject(new Error(res.data.message));
// // 				}
// // 			},
// // 			fail: (err) => {
// // 				console.error('请求腾讯地图API失败:', err);
// // 				reject(err);
// // 			}
// // 		});
// // 	}).catch(err => {
// // 		console.error('获取位置失败:', err);
// // 		return null; // 返回 null 或默认值
// // 	});
// // }

// export function getLocation(a) {
// 	a.$jsonp("https://apis.map.qq.com/ws/location/v1/ip", {
// 		key: API_KEY,
// 		output: 'jsonp',
// 		ip: IP,
// 		location: 'latitude,longitude', //可以通过uni.getLocation获取，谷歌浏览器会对定位请求清除，有时候定位准，有时候定位不准会出现初始地址甘肃省，但项目发布上https就行了，不准的时候用其他浏览器测试
// 		get_poi: '0'
// 	}).then(resp => {
// 		let res = resp;
// 		console.log(JSON.stringify(resp));
// 		let a = resp.result.ad_info;
// 		console.log(JSON.stringify(a));
// 	})
// }


// //https://apis.map.qq.com/ws/geocoder/v1/?location=39.984154,116.307490&key=[你的key]&get_poi=1
// // 逆地址解析函数
// export function reverseGeocoding(latitude, longitude) {
// 	const queryParams = `location=${latitude},${longitude}&key=${API_KEY}&get_poi=0`;
// 	const fullUrl = `https://apis.map.qq.com/ws/geocoder/v1/?${queryParams}`;

// 	console.log('reverseGeocoding 请求 URL:', fullUrl); // 添加日志输出

// 	return httpRequest.request({
// 		url: fullUrl,
// 		method: 'GET',
// 		data: {}
// 	}).then(res => {
// 		console.log('reverseGeocoding 响应结果:', res); // 添加日志输出
// 		if (res.status === 0) {
// 			const {
// 				address_component,
// 				pois
// 			} = res.result;
// 			return {
// 				nation: address_component.nation,
// 				province: address_component.province,
// 				city: address_component.city,
// 				district: address_component.district,
// 				pois: pois
// 			};
// 		} else {
// 			throw new Error(res.message);
// 		}
// 	}).catch(err => {
// 		console.error('逆地理编码失败', err);
// 		return null;
// 	});
// }